{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Multi-layer FNN on MNIST\n",
    "\n",
    "This is MLP (784-X^W-10) on MNIST. SGD algorithm (lr=0.1) with 100 epoches.\n",
    "\n",
    " "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import os, sys\n",
    "import numpy as np\n",
    "from matplotlib.pyplot import *\n",
    "import locale\n",
    "locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')\n",
    "\n",
    "import matplotlib.cm as cm\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.font_manager as font_manager\n",
    "import seaborn as sns\n",
    "import itertools\n",
    "\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "\"\"\" Extract final stats from resman's diary file\"\"\"\n",
    "def extract_num(lines0, is_reg=False):\n",
    "\n",
    "    if is_reg:\n",
    "        valid_loss_str     = lines0[-5]\n",
    "        valid_accuracy_str = lines0[-6]\n",
    "        train_loss_str     = lines0[-8]\n",
    "        train_accuracy_str = lines0[-9]\n",
    "        average_time_str   = lines0[-10]        \n",
    "        run_time_str       = lines0[-11]   \n",
    "        \n",
    "    else: \n",
    "        valid_loss_str     = lines0[-6]\n",
    "        valid_accuracy_str = lines0[-7]\n",
    "        train_loss_str     = lines0[-10]\n",
    "        train_accuracy_str = lines0[-11]\n",
    "        average_time_str   = lines0[-12]        \n",
    "        run_time_str       = lines0[-13]\n",
    "\n",
    "\n",
    "    valid_loss     = float(valid_loss_str.split( )[-1])\n",
    "    valid_accuracy = float(valid_accuracy_str.split( )[-1])\n",
    "    train_loss     = float(train_loss_str.split( )[-1])\n",
    "    train_accuracy = float(train_accuracy_str.split( )[-1])\n",
    "    run_time       = float(run_time_str.split( )[-1])\n",
    "    \n",
    "    return valid_loss, valid_accuracy, train_loss, train_accuracy, run_time\n",
    "\n",
    "\"\"\" Extract number of total parameters for each net config from resman's diary file\"\"\"\n",
    "def parse_num_params(lines0):\n",
    "    line_str = ''.join(lines0)\n",
    "    idx = line_str.find(\"Trainable params: \") # 19 for \"Trainable params: \"\n",
    "    # print line_str[idx:idx+29+20] \n",
    "    param_str = line_str[idx+18:idx+18+15] # 14 is the length of string \"Total params: \"\n",
    "\n",
    "    param_num = param_str.split(\"\\n\")[0]\n",
    "    return int(locale.atof(param_num))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Extract results from diary file\n",
    "\n",
    "    1. Number of params\n",
    "    2. Loss/Accuarcy for training/testing\n",
    "    3. Runing time"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "def extract_dim_reward(results_dir, is_reg):\n",
    "    # returns:\n",
    "    # \n",
    "    # depth = [1,2,3,4,5]\n",
    "    # width = [50,100,200,400]\n",
    "    # dim   = [0,10,50,100,200,300,350,375,400,425,450,475,500,525,550,575,600,625,650,675,700,725,750,775,800,850,900,1000,1250,1500]\n",
    "    # depth = [2]\n",
    "    # width = [400]\n",
    "    # dim = [1750,2000,2250,2500,3000,4000,5000,5500,6000,6500,7000,7500,8000,8500,9000,9500,10000,12500,15000,17500,20000,22500,25000]\n",
    "\n",
    "    ########## 1. filename list of diary ########################\n",
    "    diary_names = []\n",
    "    for subdir, dirs, files in os.walk(results_dir):\n",
    "        for file in files:\n",
    "            if file == 'diary':\n",
    "                fname = os.path.join(subdir, file)\n",
    "                diary_names.append(fname)\n",
    "\n",
    "    # print diary_names\n",
    "\n",
    "\n",
    "    depth, width, dim = [], [], []\n",
    "    for f in diary_names:\n",
    "        # print f\n",
    "        tmp_str = f.split('/')[-2]\n",
    "        W = int(tmp_str.split('_')[-1])\n",
    "        L = int(tmp_str.split('_')[-2])\n",
    "        d = int(tmp_str.split('_')[-3])\n",
    "\n",
    "        # if d not in dim:\n",
    "        depth.append(L)\n",
    "        width.append(W)\n",
    "        dim.append(d)\n",
    "\n",
    "    depth = list(set(depth)) \n",
    "    width = list(set(width))  \n",
    "    dim = list(set(dim))    \n",
    "    dim = sorted(dim)  \n",
    "\n",
    "    # print \"#L:\" + str(len(depth)) + \"#W:\" + str(len(width)) + \"#d:\" + str(len(dim))\n",
    "\n",
    "    ########## 2. Construct stats (width, depth, dim) ##########\n",
    "    # acc_test_all : Tensor (width, depth, dim)\n",
    "    # num_param_all: Tensor (width, depth)\n",
    "    # acc_solved_all:  Tensor (width, depth)\n",
    "    # dim_solved_all:  Tensor (width, depth)\n",
    "    ############################################################\n",
    "    nw, nd, nn= len(width), len(depth), len(dim)\n",
    "\n",
    "    acc_test_all  = np.zeros((len(width), len(depth), len(dim)))\n",
    "    num_param_all = np.zeros((len(width), len(depth)))\n",
    "    acc_solved_all = np.zeros((len(width), len(depth)))\n",
    "    dim_solved_all = np.zeros((len(width), len(depth)))\n",
    "\n",
    "    mode = 1         # {0: test loss, 1: test acc}\n",
    "    error_files = [] #  record the error file\n",
    "\n",
    "    # 2.1 construct acc_test_all and num_param_all\n",
    "    for id_w in range(len(width)):\n",
    "        w = width[id_w]\n",
    "        for id_ll in range(len(depth)):\n",
    "            ll = depth[id_ll]\n",
    "            for id_d in range(len(dim)):\n",
    "                d = dim[id_d]\n",
    "\n",
    "                # 2.1.1 Read the results, \n",
    "                for f in diary_names:\n",
    "                    if '_'+str(d)+'_'+str(ll)+'_'+str(w)+'/' in f:\n",
    "                        # print \"%d is in\" % d + f\n",
    "\n",
    "                        with open(f,'r') as ff:\n",
    "                            lines0 = ff.readlines()\n",
    "                            try:\n",
    "                                R = extract_num(lines0, is_reg)\n",
    "                                R = np.array(R)\n",
    "                                # print R\n",
    "                                if d==0:\n",
    "                                    num_param_all[id_w,id_ll]=parse_num_params(lines0) \n",
    "\n",
    "                            except ValueError:\n",
    "                                error_files.append((w,ll,d))\n",
    "                                R = np.zeros(5)\n",
    "                                print \"Error. Can not read config: depth %d, width %d and dim %d.\" % (ll, w, d) \n",
    "                                # break\n",
    "\n",
    "\n",
    "                # 2.1.2 Assign the results\n",
    "                r = R[mode]  \n",
    "                # print \"#w:\" + str(id_w) + \"#l:\" + str(id_ll) + \"#d:\" + str(id_d) + \", acc:\" + str(r)\n",
    "                acc_test_all[id_w,id_ll,id_d]=r\n",
    "\n",
    "    \n",
    "    print acc_test_all.shape                \n",
    "    return dim, acc_test_all, num_param_all                    \n",
    "\n",
    "    # 2.2 construct acc_solved_all and dim_solved_all           \n",
    "#     for id_w in range(len(width)):\n",
    "#         w = width[id_w]\n",
    "#         for id_ll in range(len(depth)):\n",
    "#             ll = depth[id_ll]\n",
    "#             for id_d in range(len(dim)):\n",
    "#                 d = dim[id_d]\n",
    "\n",
    "#                 r = acc_test_all[id_w,id_ll,id_d]\n",
    "#                 if d==0:\n",
    "#                     test_acc_bl = r     # 1.0     \n",
    "#                     # print \"Acc goal is: \" + str(test_acc_sl) + \" for network with depth \" + str(ll) + \" width \"+ str(w)\n",
    "#                 else:\n",
    "#                     test_acc = r\n",
    "#                     if test_acc>test_acc_bl*0.9:\n",
    "#                         acc_solved_all[id_w,id_ll]=test_acc\n",
    "#                         dim_solved_all[id_w,id_ll]=d\n",
    "#                         # print \"Intrinsic dim is: \" + str(d) + \" for network with depth \" + str(ll) + \" width \"+ str(w)\n",
    "#                         # print \"\\n\"\n",
    "#                         break\n",
    "\n",
    "#     ########## 3. Construct Tensors for Analysis (width, depth, dim) ##########                    \n",
    "#     acc_base  = acc_test_all[:,:,0]\n",
    "#     acc_solve = acc_base*0.9\n",
    "\n",
    "\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1, 1, 23)\n",
      "[1750, 0.9219],[2000, 0.9199],[2250, 0.9263],[2500, 0.9295],[3000, 0.931],[4000, 0.9351],[5000, 0.9443],[5500, 0.9471],[6000, 0.9503],[6500, 0.9505],[7000, 0.9508],[7500, 0.9518],[8000, 0.954],[8500, 0.9556],[9000, 0.9574],[9500, 0.9592],[10000, 0.9567],[12500, 0.9657],[15000, 0.9685],[17500, 0.97],[20000, 0.97],[22500, 0.9722],[25000, 0.972]\n",
      "(1, 1, 37)\n",
      "[1750, 0.9278],[2000, 0.9283],[2250, 0.9334],[2500, 0.9339],[3000, 0.9406],[3500, 0.9456],[4000, 0.9441],[4500, 0.9486],[5000, 0.9494],[5500, 0.9535],[6000, 0.9549],[6500, 0.9544],[7000, 0.9581],[7500, 0.9584],[8000, 0.9572],[8500, 0.9591],[9000, 0.9599],[9500, 0.9607],[10000, 0.963],[11000, 0.9667],[12000, 0.9641],[12500, 0.9649],[13000, 0.9685],[14000, 0.9666],[15000, 0.9675],[16000, 0.9698],[17000, 0.9701],[17500, 0.972],[18000, 0.9683],[19000, 0.9704],[20000, 0.9719],[21000, 0.9717],[22000, 0.9721],[22500, 0.9719],[23000, 0.9733],[24000, 0.9694],[25000, 0.9727]\n"
     ]
    }
   ],
   "source": [
    "results_dir = '../results/fnn_mist_2_400_high_d'   \n",
    "dim_h, acc_test_h, num_param_h = extract_dim_reward(results_dir, False)\n",
    "subspace_h2 =  np.array([ (int(dim_h[i]), acc_test_h[:,:,i]) for i in range(len(dim_h)) ])\n",
    "\n",
    "print ','.join(['[%i, %s]' % (subspace_h2[n,0], subspace_h2[n,1]) for n in xrange(len(subspace_h2))])\n",
    "\n",
    "results_dir = '../results/fnn_mist_3_400_high_d'   \n",
    "dim_h, acc_test_h, num_param_h = extract_dim_reward(results_dir, False)\n",
    "subspace_h3 =  np.array([ (int(dim_h[i]), acc_test_h[:,:,i]) for i in range(len(dim_h)) ])\n",
    "\n",
    "print ','.join(['[%i, %s]' % (subspace_h3[n,0], subspace_h3[n,1]) for n in xrange(len(subspace_h3))])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(4, 5, 30)\n",
      "[10, 0.1637],[50, 0.4549],[100, 0.6083],[200, 0.7467],[300, 0.8154],[350, 0.8429],[375, 0.8341],[400, 0.8627],[425, 0.8576],[450, 0.868],[475, 0.8605],[500, 0.867],[525, 0.8727],[550, 0.8742],[575, 0.8855],[600, 0.8768],[625, 0.8903],[650, 0.8987],[675, 0.8902],[700, 0.8946],[725, 0.8961],[750, 0.8959],[775, 0.9017],[800, 0.9037],[850, 0.9046],[900, 0.9093],[1000, 0.9096],[1250, 0.9171],[1500, 0.927],[10, 0.2023],[50, 0.4345],[100, 0.6124],[200, 0.7551],[300, 0.8189],[350, 0.8347],[375, 0.8565],[400, 0.8516],[425, 0.8596],[450, 0.8578],[475, 0.8621],[500, 0.8693],[525, 0.8803],[550, 0.8787],[575, 0.8789],[600, 0.886],[625, 0.8935],[650, 0.8889],[675, 0.892],[700, 0.8932],[725, 0.901],[750, 0.9001],[775, 0.8966],[800, 0.9004],[850, 0.9081],[900, 0.9104],[1000, 0.9163],[1250, 0.9276],[1500, 0.9302],[10, 0.1443],[50, 0.4516],[100, 0.5923],[200, 0.7614],[300, 0.8117],[350, 0.8318],[375, 0.8515],[400, 0.8562],[425, 0.8574],[450, 0.8555],[475, 0.8661],[500, 0.8723],[525, 0.8723],[550, 0.8833],[575, 0.88],[600, 0.8837],[625, 0.8897],[650, 0.8926],[675, 0.8899],[700, 0.8941],[725, 0.8983],[750, 0.9025],[775, 0.8987],[800, 0.9002],[850, 0.911],[900, 0.9112],[1000, 0.909],[1250, 0.9213],[1500, 0.9266],[10, 0.1145],[50, 0.4487],[100, 0.5761],[200, 0.7493],[300, 0.8056],[350, 0.842],[375, 0.8492],[400, 0.8494],[425, 0.852],[450, 0.8544],[475, 0.8643],[500, 0.8697],[525, 0.8676],[550, 0.8704],[575, 0.8748],[600, 0.8844],[625, 0.8861],[650, 0.8874],[675, 0.8888],[700, 0.8928],[725, 0.8943],[750, 0.891],[775, 0.8957],[800, 0.9008],[850, 0.9014],[900, 0.9086],[1000, 0.9088],[1250, 0.9258],[1500, 0.9342],[10, 0.1474],[50, 0.4175],[100, 0.6175],[200, 0.7282],[300, 0.8053],[350, 0.8128],[375, 0.8232],[400, 0.8357],[425, 0.8551],[450, 0.8517],[475, 0.861],[500, 0.8577],[525, 0.8649],[550, 0.8772],[575, 0.8762],[600, 0.8756],[625, 0.8882],[650, 0.8887],[675, 0.8868],[700, 0.8867],[725, 0.8888],[750, 0.8968],[775, 0.8938],[800, 0.8985],[850, 0.9032],[900, 0.9025],[1000, 0.9158],[1250, 0.9218],[1500, 0.9281],[10, 0.1407],[50, 0.4139],[100, 0.593],[200, 0.7428],[300, 0.8154],[350, 0.8307],[375, 0.8349],[400, 0.848],[425, 0.8513],[450, 0.8548],[475, 0.8673],[500, 0.8713],[525, 0.8737],[550, 0.8788],[575, 0.881],[600, 0.8825],[625, 0.8928],[650, 0.8895],[675, 0.8883],[700, 0.8917],[725, 0.8942],[750, 0.8915],[775, 0.8964],[800, 0.9021],[850, 0.8972],[900, 0.9047],[1000, 0.9094],[1250, 0.9261],[1500, 0.9265],[10, 0.1962],[50, 0.4106],[100, 0.6442],[200, 0.7515],[300, 0.8188],[350, 0.8432],[375, 0.8403],[400, 0.8556],[425, 0.8534],[450, 0.8685],[475, 0.873],[500, 0.865],[525, 0.8718],[550, 0.8723],[575, 0.8808],[600, 0.88],[625, 0.882],[650, 0.8878],[675, 0.8935],[700, 0.8954],[725, 0.8862],[750, 0.8989],[775, 0.8966],[800, 0.9057],[850, 0.905],[900, 0.9073],[1000, 0.9172],[1250, 0.9207],[1500, 0.9302],[10, 0.2197],[50, 0.4272],[100, 0.6052],[200, 0.7412],[300, 0.8062],[350, 0.82],[375, 0.8242],[400, 0.8567],[425, 0.8439],[450, 0.8545],[475, 0.8585],[500, 0.8595],[525, 0.87],[550, 0.8706],[575, 0.8736],[600, 0.8797],[625, 0.8879],[650, 0.8884],[675, 0.8818],[700, 0.892],[725, 0.8922],[750, 0.8934],[775, 0.8981],[800, 0.9021],[850, 0.9065],[900, 0.902],[1000, 0.9107],[1250, 0.9227],[1500, 0.928],[10, 0.1807],[50, 0.4554],[100, 0.5472],[200, 0.7225],[300, 0.8022],[350, 0.8333],[375, 0.8404],[400, 0.8409],[425, 0.8364],[450, 0.8447],[475, 0.8454],[500, 0.8601],[525, 0.8656],[550, 0.8759],[575, 0.8675],[600, 0.8758],[625, 0.8846],[650, 0.8783],[675, 0.881],[700, 0.8877],[725, 0.8913],[750, 0.8934],[775, 0.8869],[800, 0.8967],[850, 0.8959],[900, 0.9066],[1000, 0.9054],[1250, 0.9209],[1500, 0.9251],[10, 0.1233],[50, 0.397],[100, 0.5395],[200, 0.7356],[300, 0.7898],[350, 0.8187],[375, 0.8101],[400, 0.8388],[425, 0.8289],[450, 0.8496],[475, 0.8574],[500, 0.8573],[525, 0.8581],[550, 0.8701],[575, 0.8621],[600, 0.8793],[625, 0.8802],[650, 0.8748],[675, 0.8804],[700, 0.8819],[725, 0.8846],[750, 0.8905],[775, 0.8909],[800, 0.8965],[850, 0.9026],[900, 0.9005],[1000, 0.9104],[1250, 0.9194],[1500, 0.9228],[10, 0.1317],[50, 0.3655],[100, 0.6077],[200, 0.7434],[300, 0.8283],[350, 0.8387],[375, 0.8341],[400, 0.8477],[425, 0.8534],[450, 0.8636],[475, 0.8727],[500, 0.8669],[525, 0.8724],[550, 0.8793],[575, 0.884],[600, 0.881],[625, 0.8841],[650, 0.8913],[675, 0.8953],[700, 0.8933],[725, 0.8994],[750, 0.8963],[775, 0.8978],[800, 0.9011],[850, 0.903],[900, 0.9107],[1000, 0.9117],[1250, 0.9272],[1500, 0.9298],[10, 0.1163],[50, 0.4346],[100, 0.6182],[200, 0.7633],[300, 0.8194],[350, 0.8221],[375, 0.8423],[400, 0.8489],[425, 0.8611],[450, 0.871],[475, 0.8625],[500, 0.8666],[525, 0.88],[550, 0.8804],[575, 0.8852],[600, 0.8895],[625, 0.8969],[650, 0.8925],[675, 0.888],[700, 0.9027],[725, 0.8992],[750, 0.9016],[775, 0.9026],[800, 0.9004],[850, 0.9046],[900, 0.9138],[1000, 0.9146],[1250, 0.9224],[1500, 0.9324],[10, 0.1891],[50, 0.4475],[100, 0.5787],[200, 0.737],[300, 0.8108],[350, 0.8431],[375, 0.844],[400, 0.8463],[425, 0.8554],[450, 0.8598],[475, 0.8709],[500, 0.8643],[525, 0.8703],[550, 0.8763],[575, 0.8822],[600, 0.8859],[625, 0.8791],[650, 0.8903],[675, 0.8957],[700, 0.8963],[725, 0.8969],[750, 0.9026],[775, 0.8947],[800, 0.909],[850, 0.9134],[900, 0.9113],[1000, 0.9153],[1250, 0.9234],[1500, 0.9347],[10, 0.1065],[50, 0.3752],[100, 0.6107],[200, 0.729],[300, 0.813],[350, 0.8392],[375, 0.8242],[400, 0.8479],[425, 0.8478],[450, 0.8504],[475, 0.8517],[500, 0.8677],[525, 0.8807],[550, 0.8764],[575, 0.8794],[600, 0.8839],[625, 0.888],[650, 0.8888],[675, 0.8861],[700, 0.8906],[725, 0.8937],[750, 0.8952],[775, 0.9],[800, 0.9055],[850, 0.9003],[900, 0.9153],[1000, 0.9138],[1250, 0.9234],[1500, 0.9289],[10, 0.1515],[50, 0.3671],[100, 0.586],[200, 0.7524],[300, 0.8229],[350, 0.8316],[375, 0.8266],[400, 0.844],[425, 0.8435],[450, 0.8575],[475, 0.8585],[500, 0.853],[525, 0.8656],[550, 0.8792],[575, 0.8835],[600, 0.8801],[625, 0.8788],[650, 0.8818],[675, 0.9008],[700, 0.8916],[725, 0.8957],[750, 0.8967],[775, 0.8945],[800, 0.8989],[850, 0.9032],[900, 0.9065],[1000, 0.9107],[1250, 0.9223],[1500, 0.9282],[10, 0.2042],[50, 0.4588],[100, 0.6231],[200, 0.763],[300, 0.8099],[350, 0.8326],[375, 0.8436],[400, 0.8526],[425, 0.8631],[450, 0.856],[475, 0.8607],[500, 0.8731],[525, 0.8677],[550, 0.8695],[575, 0.8836],[600, 0.8711],[625, 0.8848],[650, 0.8914],[675, 0.9023],[700, 0.8917],[725, 0.8934],[750, 0.9011],[775, 0.9019],[800, 0.903],[850, 0.9002],[900, 0.9115],[1000, 0.9133],[1250, 0.9228],[1500, 0.9287],[10, 0.1581],[50, 0.4555],[100, 0.6055],[200, 0.7713],[300, 0.8181],[350, 0.8328],[375, 0.8589],[400, 0.8538],[425, 0.8586],[450, 0.8593],[475, 0.8687],[500, 0.8691],[525, 0.8816],[550, 0.8851],[575, 0.8808],[600, 0.888],[625, 0.8899],[650, 0.8931],[675, 0.8945],[700, 0.8982],[725, 0.8967],[750, 0.9022],[775, 0.9003],[800, 0.908],[850, 0.9073],[900, 0.9132],[1000, 0.9182],[1250, 0.9292],[1500, 0.9322],[10, 0.2073],[50, 0.4346],[100, 0.6321],[200, 0.7418],[300, 0.8144],[350, 0.8335],[375, 0.8512],[400, 0.8534],[425, 0.8568],[450, 0.8569],[475, 0.8671],[500, 0.8683],[525, 0.8717],[550, 0.8765],[575, 0.8899],[600, 0.8864],[625, 0.89],[650, 0.8982],[675, 0.8961],[700, 0.8956],[725, 0.8964],[750, 0.8989],[775, 0.9049],[800, 0.9072],[850, 0.908],[900, 0.9102],[1000, 0.9206],[1250, 0.9268],[1500, 0.9337],[10, 0.1528],[50, 0.4258],[100, 0.5753],[200, 0.7184],[300, 0.815],[350, 0.8339],[375, 0.8466],[400, 0.8543],[425, 0.8575],[450, 0.8632],[475, 0.8607],[500, 0.8677],[525, 0.8775],[550, 0.8722],[575, 0.8807],[600, 0.8821],[625, 0.8919],[650, 0.8888],[675, 0.884],[700, 0.8897],[725, 0.8957],[750, 0.9046],[775, 0.8993],[800, 0.9037],[850, 0.904],[900, 0.9083],[1000, 0.9194],[1250, 0.925],[1500, 0.937],[10, 0.1546],[50, 0.4475],[100, 0.598],[200, 0.7484],[300, 0.8041],[350, 0.8133],[375, 0.8264],[400, 0.8365],[425, 0.8434],[450, 0.8559],[475, 0.866],[500, 0.8633],[525, 0.8707],[550, 0.8734],[575, 0.8742],[600, 0.8855],[625, 0.8796],[650, 0.8865],[675, 0.8913],[700, 0.8996],[725, 0.8976],[750, 0.8965],[775, 0.9001],[800, 0.9077],[850, 0.9017],[900, 0.9058],[1000, 0.92],[1250, 0.9275],[1500, 0.9303]\n"
     ]
    }
   ],
   "source": [
    "results_dir = '../results/fnn_mnist_l2_adam_relu'  \n",
    "dim, acc_test_all, num_param_all = extract_dim_reward(results_dir, True)\n",
    "\n",
    "\n",
    "dim3 = np.repeat(dim, 4*5, axis=0).reshape([4, 5, len(dim)],order='F')\n",
    "acc_test_all_d1 =  acc_test_all[:,:,1:].reshape((len(dim)-1)*4*5)\n",
    "dim_d1 =  dim3[:,:,1:].reshape((len(dim)-1)*4*5)\n",
    "subspace =  np.array([ (int(dim_d1[i]), acc_test_all_d1[i]) for i in range(len(dim_d1)) ])\n",
    "\n",
    "\n",
    "print ','.join(['[%i, %s]' % (subspace[n,0], subspace[n,1]) for n in xrange(len(subspace))])\n",
    "\n",
    "# print acc_test_all.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0, 10, 50, 100, 200, 300, 350, 375, 400, 425, 450, 475, 500, 525, 550, 575, 600, 625, 650, 675, 700, 725, 750, 775, 800, 850, 900, 1000, 1250, 1500]\n",
      "(4, 5, 30)\n",
      "(1, 1)\n",
      "# Parmas\n",
      "[[ 159010.  199210.  239410.  279610.  319810.]\n",
      " [ 318010.  478410.  638810.  799210.  959610.]\n",
      " [  39760.   42310.   44860.   47410.   49960.]\n",
      " [  79510.   89610.   99710.  109810.  119910.]]\n"
     ]
    }
   ],
   "source": [
    "print dim\n",
    "print acc_test_all.shape\n",
    "print num_param_h.shape\n",
    "\n",
    "print \"# Parmas\"\n",
    "print num_param_all\n",
    "\n",
    "# print \"Cross-line results\"\n",
    "# print acc_solved_all\n",
    "\n",
    "# print \"Cross-line Dim\"\n",
    "# print dim_solved_all\n",
    "\n",
    "# print \"Dim %d results\" % dim[0]\n",
    "# print acc_test_all[:,:,0]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### List the config of depth and width, which yields errors in training"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Shape of accuracy tensor: (4, 5, 30)\n",
      "(580, 2)\n"
     ]
    }
   ],
   "source": [
    "print \"Shape of accuracy tensor: \" + str(acc_test_all.shape)\n",
    "\n",
    "\n",
    "\n",
    "print subspace.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "-------------------------"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Check the accuracy of specific depth and width, along different dim"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nCCGEEEK0jf8BM/2EUaG1CVYAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f58694fcad0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def figsize(width,height):\n",
    "    rcParams['figure.figsize'] = (width,height)\n",
    "    \n",
    "font = {'size'   : 22}\n",
    "matplotlib.rc('font', **font)\n",
    "\n",
    "figsize(15, 8)\n",
    "\n",
    "smallnets = np.array([\n",
    "[12415, 0.948],[21185, 0.9611],[22485, 0.9644],[7960, 0.9257],[7960, 0.9257],[12895, 0.9511],[7960, 0.9257],[19885, 0.9588],[4105, 0.8014],[6442, 0.9242],[7960, 0.9257],[4075, 0.8532],[6586, 0.9286],[1612, 0.3131],[2443, 0.4556],[2395, 0.7732],[6586, 0.9286],[1612, 0.3132],[12415, 0.948],[4015, 0.8704],[2431, 0.6732],[17590, 0.9564],[4105, 0.8012],[12655, 0.9566],[12415, 0.948],[2419, 0.7016],[8400, 0.9326],[7960, 0.9257],[16330, 0.9605],[1612, 0.3131],[6370, 0.9233],[2431, 0.6732],[1624, 0.3284],[1618, 0.3559],[6658, 0.9124],[4105, 0.8014],[21185, 0.9608],[1600, 0.5657],[2431, 0.6731],[4015, 0.8704],[17170, 0.9601],[1612, 0.3132],[17590, 0.9566],[6586, 0.9289],[15910, 0.9522],[8400, 0.9328],[1606, 0.5484],[12175, 0.9509],[12175, 0.9509],[2395, 0.7732],[2395, 0.7732],[2395, 0.7732],[22485, 0.9658],[7960, 0.9257],[1606, 0.5484],[12415, 0.9478],[2443, 0.4558],[1600, 0.5657],[7960, 0.9257],[12415, 0.948],[2419, 0.7016],[21835, 0.9622],[4015, 0.8704],[2443, 0.4556],[2395, 0.7732],[8180, 0.9325],[3985, 0.8871],[19885, 0.9588],[21835, 0.9622],[20535, 0.9595],[16750, 0.96],[1606, 0.5484],[12655, 0.9566],[1618, 0.3568],[1612, 0.3132],[16330, 0.9605],[1624, 0.3284],[1600, 0.5657],[7960, 0.9257],[12175, 0.9509],[2443, 0.4557],[2443, 0.4556],[4075, 0.8532],[4015, 0.8704],[4045, 0.8899],[4045, 0.8899],[17170, 0.9601],[21835, 0.9623],[16330, 0.9605],[8400, 0.9333],[17170, 0.961],[16750, 0.96],[6370, 0.9233],[16750, 0.9602],[1624, 0.3284],[17590, 0.9566],[7960, 0.9257],[8070, 0.931],[8400, 0.9328],[2419, 0.7013],[19885, 0.9588],[15910, 0.9522],[6658, 0.9124],[16750, 0.96],[6370, 0.9233],[17590, 0.9557],[8290, 0.9271],[8400, 0.9329],[8290, 0.9271],[15910, 0.9522],[7960, 0.9257],[12175, 0.9509],[3985, 0.8871],[3985, 0.8871],[16330, 0.9605],[8290, 0.9271],[19885, 0.9588],[11935, 0.947],[7960, 0.9257],[21835, 0.9626],[17170, 0.9611],[6586, 0.9289],[8180, 0.9325],[1600, 0.5657],[8070, 0.931],[17590, 0.9564],[6514, 0.9278],[4075, 0.8532],[6658, 0.9123],[12655, 0.9567],[8290, 0.9271],[8400, 0.9328],[8290, 0.9277],[2419, 0.7013],[1612, 0.3132],[4105, 0.8013],[17590, 0.9565],[1606, 0.5484],[20535, 0.9595],[21185, 0.9612],[12895, 0.9511],[8180, 0.9325],[4105, 0.8018],[2419, 0.7013],[12415, 0.948],[12655, 0.9566],[16330, 0.9605],[22485, 0.9646],[6658, 0.9124],[2419, 0.7016],[1600, 0.5657],[1618, 0.3563],[6514, 0.9281],[2407, 0.7933],[8290, 0.9271],[12415, 0.948],[20535, 0.9595],[12415, 0.948],[2419, 0.7013],[12175, 0.9509],[8290, 0.9271],[21185, 0.9608],[4075, 0.853],[12175, 0.9509],[8180, 0.9325],[2419, 0.7016],[2407, 0.7933],[1624, 0.3285],[12415, 0.948],[2395, 0.7732],[2407, 0.7933],[2419, 0.7013],[12655, 0.9563],[16330, 0.9605],[8070, 0.931],[12895, 0.9511],[4045, 0.8895],[22485, 0.9641],[6514, 0.9278],[4015, 0.8704],[21835, 0.9626],[16330, 0.9605],[4105, 0.8018],[4105, 0.8016],[2395, 0.7732],[22485, 0.9639],[1612, 0.3132],[8070, 0.931],[8400, 0.9328],[8400, 0.9328],[15910, 0.9522],[12655, 0.9567],[6514, 0.9278],[4075, 0.8532],[12415, 0.948],[4045, 0.8894],[12655, 0.9565],[21185, 0.9607],[1624, 0.3284],[6370, 0.9233],[1618, 0.3567],[17170, 0.9611],[4105, 0.8016],[2443, 0.4556],[6658, 0.9124],[2419, 0.7013],[1612, 0.3132],[17590, 0.9566],[4105, 0.8016],[12895, 0.9511],[6442, 0.9242],[1618, 0.3568],[1624, 0.3284],[12895, 0.9511],[1606, 0.5484],[15910, 0.9522],[12415, 0.948],[21185, 0.9608],[21835, 0.9622],[3985, 0.8871],[12655, 0.9565],[3985, 0.8871],[16750, 0.96],[4015, 0.8704],[16330, 0.9605],[16330, 0.9606],[4015, 0.8704],[21835, 0.9622],[1618, 0.3568],[12895, 0.9511],[21185, 0.9608],[6370, 0.9233],[22485, 0.9644],[2395, 0.7732],[16750, 0.96],[22485, 0.9639],[3985, 0.8871],[7960, 0.9257],[8070, 0.931],[12415, 0.948],[16750, 0.96],[12175, 0.9509],[22485, 0.9645],[15910, 0.9522],[17170, 0.9611],[2407, 0.7933],[2419, 0.7016],[1624, 0.3284],[8290, 0.9271],[12175, 0.9509],[2443, 0.4556],[2419, 0.7016],[2443, 0.4556],[4045, 0.8899],[12895, 0.951],[2395, 0.7732],[4045, 0.8899],[16750, 0.96],[15910, 0.9522],[2443, 0.4556],[1612, 0.3132],[6514, 0.9281],[12175, 0.9509],[12655, 0.9563],[21835, 0.9623],[7960, 0.9257],[17590, 0.9565],[16750, 0.96],[21835, 0.9622],[2443, 0.4558],[20535, 0.9595],[8070, 0.931],[3985, 0.8871],[16750, 0.9602],[12415, 0.948],[8290, 0.9271],[1600, 0.5657],[1612, 0.3132],[2407, 0.7933],[21185, 0.9609],[6658, 0.9124],[12895, 0.9511],[2407, 0.7933],[1618, 0.3567],[1606, 0.5484],[1612, 0.3132],[4075, 0.8532],[16330, 0.9605],[12655, 0.9565],[19885, 0.9588],[17590, 0.9565],[4105, 0.8014],[4015, 0.8704],[4045, 0.8899],[4015, 0.8704],[6586, 0.929],[8070, 0.931],[6586, 0.929],[8180, 0.9325],[1624, 0.3284],[17590, 0.9566],[1606, 0.5484],[21835, 0.9622],[4105, 0.8017],[4015, 0.8704],[2395, 0.7732],[16330, 0.9605],[6658, 0.9124],[11935, 0.947],[1612, 0.3132],[8180, 0.9325],[4075, 0.853],[21835, 0.9622],[3985, 0.8871],[1624, 0.3285],[11935, 0.947],[8400, 0.933],[11935, 0.947],[6514, 0.928],[16330, 0.9605],[4015, 0.8704],[6370, 0.9233],[12175, 0.9509],[11935, 0.947],[20535, 0.9595],[16330, 0.9605],[8180, 0.9325],[2443, 0.4557],[22485, 0.9646],[2443, 0.4556],[17590, 0.9566],[4045, 0.8894],[12415, 0.9478],[15910, 0.9522],[6370, 0.9233],[2431, 0.6732],[8400, 0.9331],[6370, 0.9233],[17590, 0.9568],[21835, 0.9622],[1612, 0.3131],[11935, 0.947],[3985, 0.8871],[11935, 0.947],[12415, 0.948],[17170, 0.961],[2395, 0.7732],[8070, 0.931],[6586, 0.9286],[2395, 0.7732],[21835, 0.9623],[3985, 0.8871],[16330, 0.9605],[22485, 0.9656],[1618, 0.3565],[17170, 0.9609],[12655, 0.9566],[1624, 0.3284],[4015, 0.8704],[19885, 0.9588],[7960, 0.9257],[17170, 0.9601],[21835, 0.9622],[8400, 0.933],[4105, 0.8003],[4075, 0.8531],[1618, 0.3561],[7960, 0.9257],[4105, 0.8016],[15910, 0.9522],[15910, 0.9522],[8070, 0.931],[2395, 0.7732],[2431, 0.6758],[12655, 0.9565],[12895, 0.9511],[17590, 0.9564],[21835, 0.9623],[21835, 0.9622],[2419, 0.7016],[6586, 0.9289],[2407, 0.7933],[11935, 0.947],[17170, 0.9612],[6514, 0.9278],[12895, 0.9511],[3985, 0.8871],[17590, 0.9564],[1618, 0.3567],[4045, 0.8899],[2431, 0.6732],[8290, 0.9271],[12415, 0.948],[17170, 0.9609],[2419, 0.7016],[17590, 0.9566],[6514, 0.9278],[21835, 0.9622],[12655, 0.9566],[16750, 0.9602],[4075, 0.853],[2443, 0.4558],[8400, 0.9328],[19885, 0.9588],[21835, 0.9623],[2443, 0.4556],[12655, 0.9566],[17590, 0.9576],[8400, 0.933],[12895, 0.9511],[2443, 0.4555],[1606, 0.5484],[17590, 0.9564],[1624, 0.3284],[21835, 0.9622],[1612, 0.3132],[1606, 0.5484],[1618, 0.3561],[21185, 0.9608],[8070, 0.931],[19885, 0.9588],[12175, 0.9509],[16750, 0.9602],[15910, 0.9522],[4075, 0.853],[3985, 0.8871],[1600, 0.5657],[12415, 0.9478],[17590, 0.9566],[22485, 0.9645],[8400, 0.9328],[6442, 0.9242],[17590, 0.9563],[6442, 0.9242],[19885, 0.9588],[22485, 0.9649],[8290, 0.9271],[4015, 0.8704],[20535, 0.9595],[21185, 0.9608],[4045, 0.8895],[6370, 0.9233],[1624, 0.3284],[8070, 0.931],[2419, 0.7016],[22485, 0.9644],[6442, 0.9242],[6514, 0.9278],[12655, 0.9566],[8290, 0.9271],[12415, 0.948],[4105, 0.8015],[20535, 0.9595],[1600, 0.5657],[2443, 0.4556],[2419, 0.7016],[6658, 0.9124],[8400, 0.9328],[12655, 0.9567],[8400, 0.9326],[22485, 0.964],[2419, 0.7016],[1600, 0.5657],[21835, 0.9622],[17170, 0.961],[1624, 0.3285],[21835, 0.9622],[2407, 0.7933],[12655, 0.9564],[21185, 0.9609],[1606, 0.5484],[1606, 0.5484],[17590, 0.9566],[22485, 0.9651],[21835, 0.9622],[2443, 0.4556],[4045, 0.8895],[6658, 0.9126],[22485, 0.9649],[3985, 0.8871],[2443, 0.4556],[6658, 0.9124],[11935, 0.947],[1606, 0.5484],[11935, 0.947],[22485, 0.9638],[2407, 0.7933],[12415, 0.948],[12655, 0.9565],[1606, 0.5484],[19885, 0.9588],[4075, 0.853],[6586, 0.929],[8400, 0.9328],[4105, 0.8014],[4045, 0.8899],[21185, 0.9609],[2431, 0.6732],[16330, 0.9605],[12895, 0.9511],[6514, 0.9278],[2395, 0.7732],[8290, 0.9277],[8400, 0.9326],[6586, 0.929],[16750, 0.9602],[17590, 0.9564],[6658, 0.9124],[12175, 0.9509],[6514, 0.9278],[1624, 0.3284],[17590, 0.9566],[1600, 0.5657],[4075, 0.8532],[4075, 0.8532],[4105, 0.8009],[6514, 0.9278],[12655, 0.9566],[2395, 0.7732],[1600, 0.5657],[1618, 0.3569],[20535, 0.9594],[3985, 0.8871],[1618, 0.3564],[3985, 0.8871],[4045, 0.8894],[1606, 0.5484],[2419, 0.7016],[11935, 0.947],[4015, 0.8704],[15910, 0.9522],[3985, 0.8871],[20535, 0.9595],[20535, 0.9595],[1618, 0.3567],[4075, 0.8532],[4075, 0.8532],[12415, 0.948],[6658, 0.9124],[11935, 0.947],[8070, 0.931],[16330, 0.9605],[4105, 0.8017],[4015, 0.8704],[16330, 0.9605],[1600, 0.5657],[4105, 0.8018],[12175, 0.9509],[2395, 0.7732],[8290, 0.9271],[8290, 0.9271],[8400, 0.9328],[19885, 0.9588],[17590, 0.9566],[17170, 0.9601],[16750, 0.9602],[2443, 0.4558],[3985, 0.8871],[3985, 0.8871],[21835, 0.9622],[19885, 0.9588],[2419, 0.7013],[12415, 0.948],[8290, 0.9271],[1600, 0.5657],[8070, 0.931],[6586, 0.9289],[6658, 0.9126],[6442, 0.9242],[12895, 0.9511],[12655, 0.9564],[12415, 0.948],[6514, 0.9277],[12175, 0.9509],[1606, 0.5484],[6514, 0.9278],[2419, 0.7013],[6442, 0.9242],[4045, 0.8894],[6514, 0.9278],[1612, 0.3132],[12415, 0.948],[8070, 0.931],[15910, 0.9522],[19885, 0.9588],[4105, 0.8017],[8180, 0.9325],[19885, 0.9588],[17170, 0.9609],[4105, 0.8014],[2443, 0.4556],[4015, 0.8704],[12655, 0.9561],[22485, 0.9646],[6586, 0.9286],[8180, 0.9325],[6514, 0.9278],[12895, 0.9511],[1606, 0.5484],[19885, 0.9588],[8400, 0.9328],[1618, 0.3566],[7960, 0.9257],[2443, 0.4556],[21835, 0.9625],[8180, 0.9325],[20535, 0.9595],[19885, 0.9588],[3985, 0.8871],[8070, 0.931],[16330, 0.9605],[21835, 0.9622],[2407, 0.7933],[8070, 0.931],[1624, 0.328],[6514, 0.9278],[19885, 0.9588],[17170, 0.961],[16330, 0.9605],[2395, 0.7732],[17170, 0.9612],[12175, 0.9509],[22485, 0.965],[1606, 0.5484],[4105, 0.8016],[17590, 0.9566],[6586, 0.9289],[12655, 0.9561],[7960, 0.9257],[6370, 0.9233],[8400, 0.9328],[6442, 0.9242],[7960, 0.9257],[1624, 0.3285],[1606, 0.5484],[1612, 0.3132],[16750, 0.9602],[1618, 0.3571],[2419, 0.7013],[12175, 0.9509],[12175, 0.9509],[22485, 0.9648],[2395, 0.7732],[6586, 0.9286],[4045, 0.8895],[8290, 0.9271],[11935, 0.947],[4105, 0.8016],[8290, 0.9271],[2431, 0.6732],[17590, 0.9564],[16330, 0.9605],[6514, 0.9278],[6514, 0.9278],[6442, 0.9242],[16750, 0.9602],[6442, 0.9242],[8400, 0.9345],[12655, 0.9566],[20535, 0.9594],[4105, 0.8014],[20535, 0.9595],[21185, 0.9607],[16750, 0.9602],[1618, 0.357],[12655, 0.9567],[16750, 0.96],[1600, 0.5657],[15910, 0.9522],[16330, 0.9605],[1600, 0.5657],[1624, 0.3285],[16750, 0.9602],[1612, 0.3132],[8290, 0.9271],[6658, 0.9124],[19885, 0.9588],[19885, 0.9588],[19885, 0.9588],[2419, 0.7013],[8400, 0.9326],[12895, 0.9511],[12175, 0.9509],[2431, 0.6731],[11935, 0.947],[2395, 0.7732],[6586, 0.929],[1606, 0.5484],[8400, 0.9328],[3985, 0.8871],[6442, 0.9242],[4105, 0.7998],[8400, 0.9328],[1612, 0.3132],[3985, 0.8871],[6370, 0.9233],[1606, 0.5484],[15910, 0.9522],[21835, 0.9623],[1624, 0.3284],[8180, 0.9325],[2431, 0.6732],[6658, 0.9124],[4015, 0.8704],[6586, 0.9289],[12175, 0.9509],[6658, 0.9124],[1624, 0.3285],[11935, 0.947],[21835, 0.9622],[6586, 0.9289],[6658, 0.9124],[1612, 0.3132],[1606, 0.5484],[8400, 0.9326],[2419, 0.7013],[6514, 0.9278],[1606, 0.5484],[6586, 0.9288],[19885, 0.9588],[2395, 0.7732],[17170, 0.9611],[20535, 0.9595],[11935, 0.947],[12415, 0.948],[1624, 0.3285],[11935, 0.947],[6370, 0.9233],[22485, 0.9645],[1618, 0.3563],[15910, 0.9522],[1618, 0.3572],[4045, 0.8899],[6586, 0.9289],[12655, 0.9565],[2443, 0.4558],[2443, 0.4557],[2443, 0.4556],[4075, 0.853],[8180, 0.9325],[8400, 0.933],[1624, 0.3284],[12895, 0.9511],[21185, 0.9609],[7960, 0.9257],[6370, 0.9233],[16330, 0.9606],[6370, 0.9233],[6586, 0.9289],[20535, 0.9591],[12655, 0.9567],[3985, 0.8871],[4045, 0.8895],[4015, 0.8704],[4105, 0.8018],[4075, 0.853],[2443, 0.4558],[2407, 0.7933],[1624, 0.3284],[12895, 0.9511],[7960, 0.9257],[12175, 0.9509],[6370, 0.9233],[2395, 0.7732],[21835, 0.9622],[2395, 0.7732],[4105, 0.8009],[2443, 0.4556],[19885, 0.9588],[1606, 0.5484],[4105, 0.8015],[6514, 0.9278],[21835, 0.9627],[21185, 0.9608],[21835, 0.9622],[1612, 0.3131],[1612, 0.3132],[8180, 0.9324],[7960, 0.9257],[2419, 0.7016],[6658, 0.9124],[4045, 0.8895],[12175, 0.9509],[17170, 0.9601],[12175, 0.9509],[12175, 0.9509],[15910, 0.9522],[16330, 0.9605],[4015, 0.8704],[6442, 0.9242],[8070, 0.931],[12895, 0.9511],[7960, 0.9257],[3985, 0.8871],[6586, 0.9288],[12895, 0.9511],[6442, 0.9242],[17590, 0.9574],[1618, 0.3578],[12655, 0.9561],[8070, 0.931],[2407, 0.7933],[8290, 0.9271],[16330, 0.9605],[6586, 0.9289],[12895, 0.9511],[21835, 0.9623],[1600, 0.5657],[1612, 0.3132],[16330, 0.9605],[12415, 0.948],[3985, 0.8871],[22485, 0.9652],[2395, 0.7732],[8290, 0.9271],[8070, 0.931],[16330, 0.9605],[2431, 0.6732],[4105, 0.8018],[8400, 0.9328],[12175, 0.9509],[6586, 0.9289],[17590, 0.9566],[4105, 0.8016],[2407, 0.7933],[11935, 0.947],[16330, 0.9605],[19885, 0.9588],[6514, 0.9278],[2443, 0.4556],[6586, 0.9289],[16750, 0.9601],[12655, 0.9567],[6514, 0.9278],[16750, 0.96],[2407, 0.7933],[3985, 0.8871],[17170, 0.9612],[4105, 0.8016],[22485, 0.9653],[6586, 0.9289],[19885, 0.9588],[1624, 0.3285],[11935, 0.947],[16750, 0.96],[16330, 0.9606],[21185, 0.9608],[2395, 0.7732],[21835, 0.9622],[6514, 0.9278],[8400, 0.933],[2431, 0.6731],[16750, 0.96],[4105, 0.8015],[1624, 0.3284],[21835, 0.9625],[12895, 0.9511],[3985, 0.8871],[1624, 0.3284],[8180, 0.9325],[8290, 0.9271],[1606, 0.5484],[17590, 0.9564],[12655, 0.9566],[4075, 0.853],[8400, 0.9328],[12655, 0.9562],[15910, 0.9522],[4015, 0.8704],[1606, 0.5484],[1618, 0.3565],[12655, 0.9564],[6442, 0.9242],[12895, 0.9511],[2419, 0.7013],[6658, 0.9124],[16750, 0.96],[8070, 0.931],[2407, 0.7933],[17590, 0.9564],[8400, 0.9329],[8180, 0.9325],[6442, 0.9242],[6658, 0.9124],[12415, 0.948],[1600, 0.5657],[8400, 0.9328],[1612, 0.3132],[4015, 0.8704],[1624, 0.3285],[16330, 0.9605],[11935, 0.947],[2443, 0.4556],[2443, 0.4558],[16750, 0.9601],[4105, 0.8015],[3985, 0.8871],[2443, 0.4557],[4045, 0.8894],[12655, 0.9565],[16750, 0.9602],[21835, 0.9622],[17590, 0.9566],[3985, 0.8871],[1606, 0.5484],[6586, 0.9289],[2431, 0.6732],[22485, 0.965],[12175, 0.9509],[21185, 0.9608],[6442, 0.9242],[16330, 0.9605],[12175, 0.9509],[6658, 0.9126],[6370, 0.9233],[19885, 0.9588],[1612, 0.3132],[22485, 0.9645],[2419, 0.7016],[12655, 0.9566],[17170, 0.9601],[22485, 0.965],[4105, 0.8016],[7960, 0.9257],[1618, 0.3559],[2443, 0.4557],[17170, 0.9601],[12175, 0.9509],[4105, 0.8015],[2395, 0.7732],[1618, 0.3555],[2419, 0.7013],[8180, 0.9325],[1624, 0.3284],[1612, 0.3132],[1606, 0.5484],[2395, 0.7732],[12415, 0.948],[2431, 0.6731],[1606, 0.5484],[12655, 0.9563],[6514, 0.9278],[15910, 0.9522],[2407, 0.7933],[12655, 0.9567],[6658, 0.9124],[12175, 0.9509],[1600, 0.5657],[4105, 0.8012],[1618, 0.3578],[2407, 0.7933],[6370, 0.9233],[12655, 0.9562],[1618, 0.3569],[15910, 0.9522],[6370, 0.9233],[2443, 0.4556],[1606, 0.5484],[19885, 0.9588],[2431, 0.6732],[22485, 0.965],[21835, 0.9623],[8400, 0.9328],[1624, 0.3284],[1618, 0.3566],[8180, 0.9325],[22485, 0.9638],[17170, 0.9609],[6514, 0.9278],[15910, 0.9522],[22485, 0.9645],[1612, 0.3131],[1606, 0.5484],[2419, 0.7013],[2407, 0.7933],[2431, 0.6731],[11935, 0.947],[21185, 0.961],[1600, 0.5657],[16330, 0.9605],[21185, 0.9608],[6658, 0.9124],[3985, 0.8871],[2431, 0.6732],[2395, 0.7732],[1600, 0.5657],[22485, 0.9636],[6514, 0.9278],[1618, 0.3569],[8290, 0.9271],[12895, 0.9511],[22485, 0.965],[2443, 0.4558],[12655, 0.9565],[17590, 0.9564],[21835, 0.9622],[8290, 0.9271],[12655, 0.9567],[20535, 0.9595],[19885, 0.9588],\n",
    "])\n",
    "\n",
    "semilogx(smallnets[:,0], smallnets[:,1], 'o', mfc=(.8,.8,.8), mec='k', ms=14, label='Direct')\n",
    "semilogx(subspace[:,0], subspace[:,1], 'o', mfc=(.7,.7,1), mec='k', ms=14, label='Subspace')\n",
    "semilogx(subspace_h2[:,0], subspace_h2[:,1], 'o', mfc=(.7,.7,1), mec='k', ms=14)\n",
    "semilogx(subspace_h3[:,0], subspace_h3[:,1], 'o', mfc=(.7,.7,1), mec='k', ms=14)\n",
    "xlabel('Number of trainable parameters')\n",
    "ylabel('Validation accuracy')\n",
    "plt.legend()\n",
    "# savefig('mnist_small_direct_log.png')\n",
    "savefig('figs/mnist_trainable_cmp_log.pdf', bbox_inches='tight')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\notf7YbWedWvfgoJcDAY/MjMtPqs01XcAcd5/b+6XU5MmTSgqKqryZ1nx519UVESTJk0ICgr2qN3A\nwKCy84+KimLSpEkA1X7gmZ6eTkBAAJMnTyYqKgpFUQgMNHvUdlBQMHq90cP7ZfT4moOCgt3ap+rj\n+CbgGgye36/LgYRMIUSd8GVlrr6CYl1U5bwJe4MGRfLQQy8RFlb1NOd/tD2aBx98saxtb4KitxNf\neBZAnvQ6gPjqk2lvA9fXX3/D/fdPdGv/QYMmoCg6VNXukwclX3Zz81UlwNsQUNGFocDPzw+TyVTu\nwf9CnoaAwMAgTKYA9u5NcWvfPXuS8PMzUVrqm/fXuePUXwDZt29fWfDy9H4Zjf7AuS6yNput2p+l\n04U/f5vNRrdud3rUbufOXcp9LyoqihYtWtChQ4cq9+nfvz9XXXUVkZGRZd/r3LmLB20n07Pn3RiN\nJo/fX7163eNxu97yVcC96qqWHt2vFi1aetVufZGQKYTwmvdhz7PKnCf7ehMUva1SeRP2MjIy0DST\nS1O7w7kKV2mpH5mZmV4FRW8nvvAsgER5HUB89cm0p4Fr69YMgoODsdmKPLpfJSXFBAV5XoHwhi+7\nufmqEqCqjjoJARU5Q4G/v3+5B/8LeRYCzrV9/fWtSU1diKvL12maRmrqIm644Xr8/QN9VmmqzwDS\nvXv3suDl6f265ZabAbjhhhsqhbiaOH/+WVlbsViWudVuWtoSHnwwutz3FUVh2LBhmM3mKvczm80M\nGzas3N/3Bx4YQlraYrfatliWMXHiUxQW5pGY+Lpb+yYmzqGwMI8JE8a5fc3Odr3lq4D7xBOjSUyc\n4+b9msu4ca79W+5rEjKFaEB81e3Um6qgp5U5T/f1Jih6W5XzJuwtXryMfv3Gu9V2RMQ4Fi1a6lVQ\n/Pxz7ya+8DSAWK3eBRBffTLt6fWWlqrExMR4XC1SVbtXFQhv+LKbmy8qAUajEVUtJjV1vtchoCJn\nKDAYDNX+vnoSApxtjxkzipycX8jIWFX7jpxbi/DUqV95/PFRdO3azWeVpvoMIBcGL0/u1+nTv/Li\niy9UOpYrnD//oKAgoJitW1e73G5paRHdu3ev9Frfvn2x2WxV7mez2ejTp0+57/Xo0QNVLSAz07Vr\nzsxchU5XQlhYGHq9njNnjpOREefSvhbLSnJzT6DX6wkPD8eda76wXW/5KuA+99xznD3r3v3KyzvB\n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\nOHz4MB07dsRsNmOz2VBVFYPBgMlkwmq1cujQoUuqgilc486YTAmZLpCQ6T6Hw0Hbth0YMGAK4eGj\n+e9/M9iy5Q0OHdpxwYPlPQwYMI477ggnI2MlaWnz+Pbbb1x+sKxpkpz09LdITp5L48ZXMWTIsy5N\noJOenk5MzAzmzNnvcnCZPLkrixfPIiIiAr1e73HYCww0exxQNU3zeN+ioiKPJ5MpKSn2alKX8PAB\n7N//BQ8//ILLYe/991+ia9dOAB7vqyiKx0FxwoRxTJw4nWeeeY9XX43Cz8+/2sBlt9uYPj2R+fMf\nYsmS14iIiMDhcLgd9szmQB57bARr164lJ+cM0dHPsWPHu7W23bv3w3z22Xvlxvx6GhTh3O/bffcN\nprDQjr9/SKWJL4qLzxIUZKzUjdy5b69evc+va1r/k4XUB51Ox+7du92qlqmqSs+ePausgMC5Lo3b\nt2/nT3/6EwkJCS49pM6fP585c+ZU2XXTqaaJQETNPBkT5xzD5u5DvCcP/lFRUaSnpxMcHEzz5s05\nduwYRUVFBAQE8Kc//YmcnBzy8/Pp168fCQkJ6PV6t8NUaWnpZfUBkKfqMng1adLk/AeFNR/LZDLV\nGjCdsrOz6dChQ7Uh7siRI279HU1PT6d///7VHi8tLa3GCqa4MkjIrGMSMmtWVTXRZPKnSZPrmDkz\ntexhfODAyrOlfvTRUvLzT3Htte05fPhTSktLylUb7733XrZu3VqpUnnHHV346quvGDZsFvfeW/6h\n9ddfs5k2rXetAWLr1lW8994fD7SezZR6rpq4ZUuqV5VMqzXP44AaHj7A4/POyspizJiFblci4+Ji\nKSrKJzi4scdVwQ8+2MCTT8aSm3vG7cqcpmlu76vX+/GPf0yhXbt2HgfFsLAwr6tyroe9HEpKrKxe\nHUebNm3QNI3Vq1ezevVaRo+eR4sW15//4KZ82wMGjCMn5yfef7/yzKHeBEXwbsY/X87aVx88nUUy\nKiqqykqmpmk88sgjPP3004SGhjJ//nySkpKqfUhdv349p06dYtasWTUGzAtDj/z7777Dhw/TrVs3\nt6t/+/fvJy8vj9DQ0Gof4nfv3k2PHj3K7b9//37uvPPOavf57LPP6Nat/PNeXl4eN998M/n5+ZX2\nCQ4O5ptvvqFRo0bAH0HF1TDlbnC53O3bt4/u3btXe//37t3LX/7yF5eO9eOPP3LDDTdUe6wffviB\n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\nX7lyJdu3b2fMmDFJTiYiIiIism/dpcl8OXEd5JzLaqfmzL1qO9I/ca3roGZn4nq4h+d1a/X1u/j6\n18/wtBZz1ao5zJy5nhNOOJ36+n0OCh8UDrU1jEuWLKGhoYFZs2axYsWKDv+nwYoVK5g9ezYNDQ08\n9NBDXZxUREREROSLusVv2Wb2rnPuf4DTgcuAstafO+eGAUcBHwJfGJlswweJ60nOuVwz29lGzeDE\n9a39S919ZGf3JhLZ+dlazN//vorVq+ezdOl0Ghp2kZXVm0GDzub735/JqacWEggEqKvbTna2pz2U\nur09axhLSkpoaWlh48aNPPHEE7z88st8+umn9OrVi9NOO43LLruMwYMHEwgEqK6uJhQKpTp6m4LB\nIGvXruX8889nzpw5LFu27AvnflZXV/PII49QW1tLNBpl7dq13bZpFhEREZGexXld95VszrlLgSeI\nN5Jnm9kbifePAKqJT3+dbGb3tLpnIjAR+K2ZjWn1fgbx5vFrwArgh2b2SeKzADADuBWIASeZ2Zsd\nZcvLy7NNmzZ11h+103372xeSkXECH374Jq+99kKrxnIoI0aM57TTir6wg2xFxWLefPMp1qx5KkWp\nO49zjv79+3P33Xczffp0MjIyuOyyyz7XlK1bt44nnniCxsZGfvGLX/Cv//qvvPvuu57XPaZCRUUF\n559/PhCf3huNRonFYgSDQUKh0Gejt2vXrqW4uDiVUUVERETkEOec22xmeZ5qu9Mv2c65BcC1wG7g\nWaCJ+G6wfYBy4FIza25V/zPgp8SPIynY61mFwCogC/gY+B3QAJxK/KzNFmCSmc3fV67u3GRu27aN\n884rpqUlxMUXTyc/fxThcC6RyE5qalaxevV8mpp2c9NN5Rx5ZHwnWTNj6tTTuffe/zgkmpM33niD\nU045hVAoxKRJkxg1alS754OuWrWKefPmEY1GefXVV7vlOZmtxWIx7rzzTh544AE++ugjmpqaSE9P\n54gjjuCaa67h+uuv1wimiIiIiCSdnyazW/12ambjnXMbgAnAMCAN2AosAe43sxYfz6pyzv0/YArx\n8zILiK9B/SvwGHCPmW3s3D9B19q2bRtDhgzjiitu5bzzxn2uscrJ6UtR0TgKC8dSVbWEG28cxsyZ\n6znyyAFUVT1EINBIYWFhCtN3nh07duCcY+LEiR2elemco6SkhObmZubOncuOHTu6MOX+CQaD3HTT\n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\nErgDaA1sAx4FOjjnOjjnHnXObYt+uFIT5ebmMnXqVML97cE5x9SpU/X4EhERERGRGihkkmlmzwI/\n4j0DM82fPR8YinfVcrRz7sPohyg13fLly9m8eTPZ2dlhlZ8xYwZbtmxh+fLlUY5MREREREQirayb\n3q7wX9cDzwPPO+e+i3ZAcvjp2LEje/bsYcKECTjnGDhwYNDHmTjnmDFjBg888AD79u2jY8eOMYhW\nREREREQqw0J1YfQH9nnWObeoSiOqhjp27OhWrFgR6zBqPDMjOTmZo446ihEjRtCzZ09SU1PJzc1l\n4cKF/P3vf2fz5s3s2bMn7K61IiIiIiISfWa20jkX1lWgkEmm/JeSzMhZsWIFnTp1IjU1lX379pGf\nn09CQgJJSUnk5uayfPlyXcEUEREREalmypNk6hkRUqU6duyoq5QiIiIiIoexCj0nU0RERERERCQY\nJZkiIiIiIiISMUoyRUREREREJGKUZIqIiIiIiEjEKMkUERERERGRiFGSKSIiIiIiIhGjJFNERERE\nREQiRkmmiIiIiIiIRIySTBEREREREYkYJZkiIiIiIiISMUoyRUREREREJGKUZIqIiIiIiEjEKMkU\nERERERGRiFGSKSIiIiIiIhGjJFNEREREREQiRkmmiIiIiIiIRIySTBEREREREYkYJZkiIiIiIiIS\nMUoyRUREREREJGKUZIqIiIiIiEjEKMkUERERERGRiFGSKSIiIiIiIhGjJFNEREREREQiRkmmiIiI\niIiIRIySTBEREREREYmYhFgHICIiIiJSXeXn5/PLL7+wY8cO8vPzYx2OSKUlJCTQoEEDGjduTEJC\ndNJBJZk1SCAQICcnh4cffozFi98hL28XKSn16d79HEaPHkl6ejpxcbo4LSIiIhIJgUCAjRs3kpSU\nxLHHHkudOnUws1iHJVJhzjn279/P1q1b2bhxI61bt45K/qAks4ZYu3Yt/ftnAXXJyBjFZZc9S2pq\nQ3Jzt7Ns2UzGjBkHjGX27Gzatm0b63BFREREarxt27aRkJBA8+bNlVzKYcHMSEpKonnz5nz33Xds\n27aNJk2aRHw7SjJrgLVr19K9exrDht3N+edfVeIk16DBkaSnX03v3lexYMGzdO+exuLFbyvRFBER\nEamk3NxcGjdurARTDjtmRsOGDZVk1laBQID+/bMYNuxueve+OmQ5M6N376txzjFgwEBWr/5EXWdF\n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\nNmzAzGjTpk3IMuHcezllyhTOOOMM6tWrR5MmTRg0aBCffvpp0LJffPEFl19+Oa1bt6ZOnTrUr1+f\nNm3aMHDgQKZPn16i7Pjx4zEzxo8fz9dff83w4cNp1qwZdevW5dRTT+WBBx4gP//gcU927drFlClT\nyMrK4oQTTqBevXqkpqZyxhln8Ne//pU9e/aE/Cx5eXlMmDCBrl270rBhQ5KTkzn++OO5+OKLmTNn\nzkHlDxw4wBNPPEGPHj1o1KgRdevW5cQTT2Ts2LFs3ry5zP1WlZRkVnPHHXccycmpTJiwjOTk1DLL\n1q3rlatbtx7HHdemKsITERERkQp4+OHHSE8fGfZgNmZGevpIJk2aHOXIwnPssccC8NZbb4VM8KLh\n97//Pddffz0NGjQgMzOTI488khkzZtC5c+eDuuZ+8skndOrUialTp1KvXj369+9PRkYGzZs3Z968\neTz11FNBt/H111/TsWNHFi5cSM+ePenVqxfr16/n5ptv5uKLLz5oIKaPPvqI3/zmNyxZsoQWLVow\nYMAAunbtyldffcXtt99Oz5492bt370Hb+eabbzjzzDO55ZZb+PTTT+natSuZmZk0b96cN998k/vu\nu69E+Z07d3Luuedy/fXX88knn9ChQwf69etHfn4+EydOpGPHjmzYsKFyOzhC1F22mmvQoBHp6VfR\nqtVJTJ78GR9+OJ833pjMjz9+VVSmSZMWjBjxV9q3701cXBz9+9/I8uUvxDBqERERESnL4sXvcNll\nz5arTpcuWUydekuUIiqfzMxMWrRowaZNmzjjjDNIT08nLS2NDh060KlTJxo0aBCV7U6ZMoWFCxcW\ndcN1zjFu3DjuvfdeLr30UtauXUvdunUBmDhxIrt27eJvf/sbt912W4n15Obm8sknnwTdxtSpUxk8\neDDTpk0rWte6devo1asX2dnZPPHEE4wcObKofJs2bXjrrbfo2bNnia7M27dvZ9iwYcydO5dJkybx\nxz/+sWhZIBBg4MCBfPHFF2RmZvLcc8/RqFGjouW7du3iP//5T4m4rrvuOhYvXsxFF13ElClTisoX\nFBQwbtw47rvvPq644goWLVpU3t0acRbuozFqs44dO7oVK1bEZNtHHNGQxx//kgYNjgy7zo4dWxg5\n8kR27NgWxchEREREDm9r1qzhlFNOicq64+Pjee21fcTHh3/NJz//ABddlBy0y2YsrFmzhhEjRlD6\ne3JcXBxdunRh9OjRDBkypGj+hg0bOO6442jdunXIK26FV3ZL5yiF82+66SYmTIOyfg4AACAASURB\nVJhQYllBQQFt27Zl/fr1TJs2jcsuuwyAfv36MWfOHD744APat29/yM8zfvx4/vznP1OvXj2+/vrr\ng7oCP/fcc1x11VWccMIJrFu37pDrAy85bdu2LR07dmT58uVF87Ozsxk4cCBt2rRh9erVJCeXfavb\n6tWrOfXUU2ndujVr1qw5qHwgEKB9+/Z88sknfPzxx5x22mlhxVeeNm5mK51zHcMpq+6y1Vxe3i5S\nUxsCXuNZuXIud901gKFDG5KZGc/QoQ25664BrFz532copaQ0IDd3VyzDFhEREZEypKTUJzd3e7nq\n5OXtICWlfpQiKr9TTjmF5cuX89577zFu3DjOO+88GjVqRCAQ4P3332fo0KFcccUVEd3m8OHDD5oX\nHx/PsGHDAEpcxTvrrLMA+O1vf8v8+fPZt29fWNvo3bt30HtNL730UuLi4vjyyy/5/vuSjwx0zrF4\n8WL+9re/MXLkSK688kquuOIK7r77bsAbSbi4uXPnAnDZZZcdMsEEePPNNwG48MILg5aPi4ujR48e\nACxZsiSMTxld6i5bzSUmJpGbu53c3F/461+zSEysS79+oxg9uuQzlKZOHcczz4zlT3/KJjW1MYmJ\nSbEOXURERERC6N79HJYtm0l6euiRZUtbujSbbt16RDGqijn77LM5++yzAe+iyNKlS/nzn/9MTk4O\nL7zwAv369ePiiy+OyLaOO+64oPMLBxP67rvviubdcsstvPvuu7z11lukp6eTlJRE+/btSUtLY/jw\n4SGv9oXaRlJSEs2bN+f777/nu+++o2XLlgD89NNPDBo0iPfffz9k3Dt37izx/ptvvCdBnHzyySHr\nFLd+/XoAJk+ezOTJZd+XWx0GAFKSWc0lJNRh7twneeONRxk+/G569w79DKX585/lttvS6Nt3FAkJ\niTGMWkRERETKMnr0SMaMGXfQd7tQnHPMmzeZRx65twqiq7i4uDjOPvts5syZw1lnncWqVavIzs4O\nK8ksPaBOZdWrV48FCxawbNky5s6dy3vvvceSJUtYtmwZ9913H3/+85/53//930pv55prruH999+n\nW7dujB8/ntNPP52GDRuSmJjI/v37SUo6+OJPuAM+FSooKADgzDPPpF27dmWWPfXUU8u17mhQklnN\n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\npe6hAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f5868be3250>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot(smallnets[:,0], smallnets[:,1], 'o', mfc=(.8,.8,.8), mec='k', ms=14, label='Direct')\n",
    "plot(subspace[:,0], subspace[:,1], 'o', mfc=(.7,.7,1), mec='k', ms=14, label='Subspace')\n",
    "plot(subspace_h2[:,0], subspace_h2[:,1], 'o', mfc=(.7,.7,1), mec='k', ms=14)\n",
    "plot(subspace_h3[:,0], subspace_h3[:,1], 'o', mfc=(.7,.7,1), mec='k', ms=14)\n",
    "xlabel('Number of trainable parameters')\n",
    "ylabel('Validation accuracy')\n",
    "plt.legend()\n",
    "# savefig('mnist_small_direct.png')\n",
    "savefig('figs/mnist_trainable_cmp.pdf', bbox_inches='tight')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Reshape the tensor to 1D for plots"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "\n",
    "\n",
    "fig_width = width*len(depth)\n",
    "fig_depth = list(itertools.chain.from_iterable(itertools.repeat(x, len(width)) for x in depth))\n",
    "\n",
    "print fig_width\n",
    "print fig_depth\n",
    "print num_param_all\n",
    "\n",
    "print \"Ratio of D: \" + str(np.max(num_param_all[:])/(np.min(num_param_all[:])+.0))\n",
    "print dim_solved_all\n",
    "print \"Ratio of D: \" + str(np.max(dim_solved_all[:])/(np.min(dim_solved_all[:])+.0))\n",
    "\n",
    "fig_params_1d = num_param_all.reshape(len(depth)*len(width),order='F')\n",
    "dim_solved_all_1d = dim_solved_all.reshape(len(depth)*len(width),order='F')\n",
    "acc_solved_all_1d = acc_solved_all.reshape(len(depth)*len(width),order='F')\n",
    "print fig_params_1d\n",
    "print dim_solved_all_1d"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Testing Accuracy wrt. Width, Depth and Dim"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import matplotlib.cm as cm\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.font_manager as font_manager\n",
    "import seaborn as sns\n",
    "\n",
    "plt.figure(figsize=(20,5.0))\n",
    "\n",
    "for i in range(acc_test_all.shape[2]):\n",
    "    acc = acc_test_all[:,:,i].reshape(len(depth)*len(width),order='F')\n",
    "    if i==0:\n",
    "        plt.scatter(fig_params_1d, acc, s=(np.array(fig_width)**1.8)/100, c=fig_depth, edgecolors='k') \n",
    "        plt.scatter(fig_params_1d, 0.9*acc, marker=\"_\", s=300, c='k', edgecolors='r') \n",
    "    else:\n",
    "        plt.scatter(fig_params_1d, acc, s=(np.array(fig_width)**1.8)/100, c=fig_depth, facecolors='None', linewidth=np.array(dim[i])/300.0) \n",
    "\n",
    "        \n",
    "ax = plt.gca()\n",
    "plt.colorbar(label=\"Depth\")\n",
    "\n",
    "ax.set_xscale('log')\n",
    "ax.grid(True)\n",
    "\n",
    "ax.set_ylim(0.8, 1.0)\n",
    "ax.set_xlim(0.3E4, 1.5E6)\n",
    "\n",
    "plt.xlabel('# parameters')\n",
    "plt.ylabel('# accuracy')\n",
    "\n",
    "#make a legend:\n",
    "pws = width\n",
    "for pw in pws:\n",
    "    plt.scatter([], [], s=(pw**1.8)/1000, c=\"k\",label=str(pw))\n",
    "\n",
    "h, l = plt.gca().get_legend_handles_labels()\n",
    "plt.legend(h[0:], l[0:], labelspacing=1.2, title=\"layer width\", borderpad=1, loc='best', bbox_to_anchor=(1.25, 1),\n",
    "             frameon=True, framealpha=0.6, edgecolor=\"k\", facecolor=\"w\")\n",
    "\n",
    " \n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Testing Accuracy of Intrinsic dim for #parameters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "plt.figure(figsize=(20,5))\n",
    "\n",
    "\n",
    "plt.scatter(fig_params_1d, acc_solved_all_1d, s=(np.array(fig_width)**2.0)/100, c=fig_depth, edgecolors='k') \n",
    "\n",
    "ax = plt.gca()\n",
    "plt.colorbar(label=\"Depth\")\n",
    "\n",
    "ax.set_xscale('log')\n",
    "ax.grid(True)\n",
    "\n",
    "ax.set_ylim(0.0, 1.0)\n",
    "ax.set_xlim(0.3E5, 1.5E6)\n",
    "\n",
    "\n",
    "plt.xlabel('# parameters')\n",
    "plt.ylabel('# accuracy')\n",
    "\n",
    "#make a legend:\n",
    "pws = width\n",
    "for pw in pws:\n",
    "    plt.scatter([], [], s=(pw**1.8)/100, c=\"k\",label=str(pw))\n",
    "\n",
    "h, l = plt.gca().get_legend_handles_labels()\n",
    "plt.legend(h[0:], l[0:], labelspacing=1.2, title=\"layer width\", borderpad=1, \n",
    "            frameon=True, framealpha=0.6, edgecolor=\"k\", facecolor=\"w\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Intrinsic dim for #parameters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# plt.figure(figsize=(20,5))\n",
    "\n",
    "fig, ax = subplots(figsize=(20,5) )\n",
    "\n",
    "font = {'family' : 'normal',\n",
    "        'weight' : 'normal',\n",
    "        'size'   : 16}\n",
    "matplotlib.rc('font', **font)\n",
    "\n",
    "plt.scatter(fig_params_1d, dim_solved_all_1d, s=(np.array(fig_width)**2.0)/100, c=fig_depth, edgecolors='k') \n",
    "\n",
    "ax = plt.gca()\n",
    "plt.colorbar(label=\"Depth\")\n",
    "\n",
    "ax.set_xscale('log')\n",
    "\n",
    "ax.grid(True)\n",
    "ax.set_ylim(400, 1000)\n",
    "\n",
    "plt.ylabel('Intrinsic dimension $d_{int}$')\n",
    "plt.xlabel('Number of parameters $D$')\n",
    "ax.set_xlim(0.3E5, 1.5E6)\n",
    "\n",
    "#make a legend:\n",
    "pws = width\n",
    "for pw in pws:\n",
    "    plt.scatter([], [], s=(pw**1.8)/100, c=\"k\",label=str(pw))\n",
    "\n",
    "h, l = plt.gca().get_legend_handles_labels()\n",
    "plt.legend(h[0:], l[0:], labelspacing=1.2, title=\"layer width\", borderpad=1, \n",
    "            frameon=True, framealpha=0.6, edgecolor=\"k\", facecolor=\"w\")\n",
    "\n",
    "fig.savefig(\"figs/fnn_mnist_dim_global.pdf\", bbox_inches='tight')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Performance comparison with Baseline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "fig = plt.figure(figsize=(20,16))\n",
    "fig.subplots_adjust(hspace=0.4)\n",
    "\n",
    "acc_solved_all\n",
    "\n",
    "for i in range(nw):\n",
    "    for j in range(nd):\n",
    "        id = i*nd+j+1\n",
    "        ax = plt.subplot(nw, nd, id)\n",
    "\n",
    "        plot(dim[1:], acc_test_all[i,j,1:], 'o', mec='b', mfc=(.8,.8,1), ms=10)\n",
    "        plot(dim_solved_all[i,j], acc_solved_all[i,j], 'o', mec='b', mfc='b', ms=10)\n",
    "        axhline(acc_test_all[i,j,0], ls='-', color='k')\n",
    "        axhline(acc_test_all[i,j,0] * .9, ls=':', color='k')\n",
    "        ax.set_xlabel('Subspace dim $d$')\n",
    "        if j==0:\n",
    "            ax.set_ylabel('Validation accuracy')\n",
    "            \n",
    "        ax.set_title('width %d, depth %d' %(width[i], depth[j]))\n",
    "        plt.grid()\n",
    "        ax.set_ylim([0.1,1.01])\n",
    "        \n",
    "fig.savefig(\"figs/fnn_mnist_all_configs.pdf\", bbox_inches='tight')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "fig, ax = subplots(figsize=(5,4) )\n",
    "\n",
    "font = {'family' : 'normal',\n",
    "        'weight' : 'normal',\n",
    "        'size'   : 16}\n",
    "matplotlib.rc('font', **font)\n",
    "\n",
    "acc_solved_all\n",
    "\n",
    "i,j = 3,1 \n",
    "\n",
    "print dim_solved_all[i,j]\n",
    "\n",
    "id = i*nd+j+1\n",
    "# ax = plt.subplot(nw, nd, id)\n",
    "\n",
    "plot(dim[1:], acc_test_all[i,j,1:], 'o', mec='b', mfc=(.8,.8,1), ms=10)\n",
    "plot(dim_solved_all[i,j], acc_solved_all[i,j], 'o', mec='b', mfc='b', ms=10)\n",
    "axhline(acc_test_all[i,j,0], ls='-', color='k',label='baseline')\n",
    "axhline(acc_test_all[i,j,0] * .9, ls=':', color='k',label='solved')\n",
    "plt.legend()\n",
    "ax.set_xlabel('Subspace dimension $d$')\n",
    "ax.set_ylabel('Validation accuracy')\n",
    "\n",
    "ax.set_title('width %d, depth %d' %(width[i], depth[j]))\n",
    "plt.grid()\n",
    "ax.set_ylim([0.1,1.01])\n",
    "        \n",
    "fig.savefig(\"figs/fnn_mnist_W\"+str(width[i])+\"_L\"+str(depth[j])+\"_configs.pdf\", bbox_inches='tight')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def extract_dim_reward_maxd(results_dir, is_reg):\n",
    "    # returns:\n",
    "    # \n",
    "    ########## 1. filename list of diary ########################\n",
    "    diary_names = []\n",
    "    for subdir, dirs, files in os.walk(results_dir):\n",
    "        for file in files:\n",
    "            if file == 'diary':\n",
    "                fname = os.path.join(subdir, file)\n",
    "                diary_names.append(fname)\n",
    "\n",
    "    # print diary_names\n",
    "\n",
    "\n",
    "    depth, width, dim = [], [], []\n",
    "    for f in diary_names:\n",
    "        # print f\n",
    "        tmp_str = f.split('/')[-2]\n",
    "        W = int(tmp_str.split('_')[-1])\n",
    "        L = int(tmp_str.split('_')[-2])\n",
    "        d = int(tmp_str.split('_')[-3])\n",
    "\n",
    "        # if d not in dim:\n",
    "        depth.append(L)\n",
    "        width.append(W)\n",
    "        dim.append(d)\n",
    "\n",
    "    depth = list(set(depth)) \n",
    "    width = list(set(width))  \n",
    "    dim = list(set(dim))    \n",
    "    dim = sorted(dim)  \n",
    "\n",
    "    print \"#L:\" + str(len(depth)) + \"#W:\" + str(len(width)) + \"#d:\" + str(len(dim))\n",
    "\n",
    "    ########## 2. Construct stats (width, depth, dim) ##########\n",
    "    # acc_test_all : Tensor (width, depth, dim)\n",
    "    # num_param_all: Tensor (width, depth)\n",
    "    # acc_solved_all:  Tensor (width, depth)\n",
    "    # dim_solved_all:  Tensor (width, depth)\n",
    "    ############################################################\n",
    "    nw, nd, nn= len(width), len(depth), len(dim)\n",
    "\n",
    "    acc_test_all  = np.zeros((len(width), len(depth), len(dim)))\n",
    "    num_param_all = np.zeros((len(width), len(depth)))\n",
    "    acc_solved_all = np.zeros((len(width), len(depth)))\n",
    "    dim_solved_all = np.zeros((len(width), len(depth)))\n",
    "\n",
    "    mode = 1         # {0: test loss, 1: test acc}\n",
    "    error_files = [] #  record the error file\n",
    "\n",
    "    # 2.1 construct acc_test_all and num_param_all\n",
    "    for id_w in range(len(width)):\n",
    "        w = width[id_w]\n",
    "        for id_ll in range(len(depth)):\n",
    "            ll = depth[id_ll]\n",
    "            for id_d in range(len(dim)):\n",
    "                d = dim[id_d]\n",
    "\n",
    "                # 2.1.1 Read the results, \n",
    "                for f in diary_names:\n",
    "                    if '_'+str(d)+'_'+str(ll)+'_'+str(w)+'/' in f:\n",
    "                        print \"%d is in\" % d + f\n",
    "\n",
    "                        with open(f,'r') as ff:\n",
    "                            lines0 = ff.readlines()\n",
    "                            try:\n",
    "                                R = extract_num(lines0, is_reg)\n",
    "                                R = np.array(R)\n",
    "                                # print R\n",
    "                                num_param_all[id_w,id_ll]=parse_num_params(lines0) \n",
    "\n",
    "                            except ValueError:\n",
    "                                error_files.append((w,ll,d))\n",
    "                                R = np.zeros(5)\n",
    "                                print \"Error. Can not read config: depth %d, width %d and dim %d.\" % (ll, w, d) \n",
    "                                # break\n",
    "\n",
    "\n",
    "                # 2.1.2 Assign the results\n",
    "                r = R[mode]  \n",
    "                print \"#w:\" + str(id_w) + \"#l:\" + str(id_ll) + \"#d:\" + str(id_d) + \", acc:\" + str(r)\n",
    "                acc_test_all[id_w,id_ll,id_d]=r\n",
    "\n",
    "    \n",
    "    print acc_test_all.shape    \n",
    "    print num_param_all.shape\n",
    "    return dim, acc_test_all, num_param_all                        \n",
    "\n",
    "\n",
    "results_dir = '../results/fnn_mnist_l2_max_d'   \n",
    "dim_md, acc_test_md, num_param_md = extract_dim_reward_maxd(results_dir, False)\n",
    "acc_test_md, num_param_md = acc_test_md.reshape(20) , num_param_md.reshape(20) \n",
    "subspace_md =  np.array([ (int(num_param_md[i]), acc_test_md[i]) for i in range(20) ])\n",
    "\n",
    "print subspace_md"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "acc_test_md, num_param_md = acc_test_all[:,:,0].reshape(20) , num_param_all.reshape(20) \n",
    "direct_md =  np.array([ (int(num_param_md[i]), acc_test_md[i]) for i in range(20) ])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def figsize(width,height):\n",
    "    rcParams['figure.figsize'] = (width,height)\n",
    "    \n",
    "font = {'size'   : 22}\n",
    "matplotlib.rc('font', **font)\n",
    "\n",
    "figsize(15, 8)\n",
    "\n",
    "\n",
    "semilogx(direct_md[:,0], direct_md[:,1], 'o', mfc=(.8,.8,.8), mec='k', ms=14, label='Direct')\n",
    "semilogx(subspace_md[:,0], subspace_md[:,1], 'o', mfc=(.7,.7,1), mec='k', ms=14, label='Subspace')\n",
    "\n",
    "xlabel('Number of trainable parameters')\n",
    "ylabel('Validation accuracy')\n",
    "plt.legend()\n",
    "savefig('figs/mnist_trainable_maxd_cmp_log.pdf', bbox_inches='tight')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "plot(direct_md[:,0], direct_md[:,1], 'o', mfc=(.8,.8,.8), mec='k', ms=14, label='Direct')\n",
    "plot(subspace_md[:,0], subspace_md[:,1], 'o', mfc=(.7,.7,1), mec='k', ms=14, label='Subspace')\n",
    "xlabel('Number of trainable parameters')\n",
    "ylabel('Validation accuracy')\n",
    "plt.legend()\n",
    "# savefig('mnist_small_direct.png')\n",
    "savefig('figs/mnist_trainable_maxd_cmp.pdf', bbox_inches='tight')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
